#!/usr/bin/env node

//Node CLI 应用入口文件必须要用 #!/usr/bin/env node 这样的开头

//脚手架的工作过程
//1.通过命令行询问用户预设问题,node中通过inquirer模块完成
//2.根据用户的输入生成文件

const fs = require('fs')
const path = require('path')
const inquirer = require('inquirer')
const ejs = require('ejs')

inquirer
  .prompt([
    {
      type: 'input',
      name: 'name',
      message: 'Project name?',
    },
  ])
  .then((answers) => {
    //根据用户输入生成文件
    //模板目录
    const templateDir = path.join(__dirname, 'templates')
    //目标目录
    const destDir = process.cwd()
    //读取模版下的文件并转换到目标目录
    fs.readdir(templateDir, (err, files) => {
      if (err) throw err
      files.forEach((file) => {
        //模版引擎渲染文件
        ejs.renderFile(path.join(templateDir, file), answers, (err, result) => {
          if (err) throw err
          fs.writeFileSync(path.join(destDir, file), result)
        })
      })
    })
  })
